There have been significant developments in the area of policy-based computing. The development of policy-based computing is expected to simplify and reduce the cost of system administration, while increasing the quality of service. Policy-based computing allows an administrator to specify a set of rules to guide the operations of a computer system. The techniques of policy-based computing are especially applicable to the area of autonomic computing.
Some examples of policies include a policy that would re-allocate storage and notify the user when specific performance requirements are not met; and a policy that specifies a specific type of service be assigned to a user with specific attributes, e.g. a user associated with a specific company or a specific IP address.
Currently existing efforts in this area include “Policy-Based Networking: Architecture and Algorithms” (New Riders publishing, 2001) by Dinesh C. Verma, which discusses the application of policy-based computing to networking; and “A Framework for Policy-Based Storage Management” by Murthy Devarakonda, Jack Gelb, Avi Saha, and Jimmy Strickland (Proceedings of Policy 2002 Intl. Workshop on Policies for Distributed Systems and Networks, Monterrey, Calif., June 2002), which discusses policy-based storage management. Also, a document available from the Distributed Management Task Force (DMTF), entitled “IETF/DMTF policy framework”, http://www.dmtf.org/download/presentations/junedev01/track/0613-01_policy.pdf, represents an attempt to develop standards in policy-based computing.
In the field of on-demand computing, policy management becomes an important element in managing the environment. In order to adaptively respond to changes in resource requirements it should be possible to change policies easily, effectively and rapidly, in response to changing conditions. These changing conditions can be viewed as being generated by, as non-limiting examples, changes in laws, rules or regulations in a particular country; an occurrence of an unforeseen event that can cause a ripple effect throughout a network of computers; or a data center experiencing a rapid up/down surge in requests for processing.
The typical practice in using policies is that policies are created first, and then applied against customer requirements specified in a contract. Once created, the policies are applied with the expectation that the environment can be controlled in meeting the customer requirements. However, if problems are subsequently detected the policies are not readily adaptable or changeable.
The conventional policy specification includes at least a precondition, an action and a priority. When the precondition evaluates to a Boolean value true, the action executed. The priority determines which specific policy action is to be executed if more than one policy having the same precondition, but different actions, evaluates to true.
In general, in conventional practice the policy statements are static, meaning that once they are created and activated, they cannot be changed. If a policy change is required, based on changing business and/or environment conditions, it is necessary to create a new policy reflecting the desired change(s) and to then replace the prior, out-dated policy statement with the newly created policy statement. The replacement operation is generally a two step process of first deactivating the prior policy statement and then activating the new policy statement. However, this can be a cumbersome and time consuming process, especially since the required policy change may be quite small, while the amount of effort needed to create the new policy, verify and activate it may be substantially greater. Further, in a business environment the process of making a change to a policy may involve offline approval and verification steps and, as a result, the policy change may require a significant amount of time to complete. As such, the application of a policy change may not be rapid enough to respond to changes in the external (environmental) conditions (i.e., the policy change process is not a real-time or a substantially real-time process).
Relevant publications include the following: Leonidas Lymberopoulos, Emil Lupu, and Morris Sloman, “An Adaptive Policy Based Management Framework for Differentiated Services Networks,” in Proceedings of 3rd IEEE Workshop on Policies for Distributed Systems and Networks (Policy 2002), Monterey, Calif., June 2002, pp 147-158; Heiko Ludwig, Alexander Keller, Asit Dan, Richard King and Richard Frank, “A Service Level Agreement Language for Dynamic Electronic Services,” in Journal of Electronic Commerce Research, Vol: 3, No. 1/2, September 2002; “Web Service Level Agreement (WSLA) Language Specification”, Version 1.0, Revision: wsla-2003/01/28, Copyright IBM Corporation, 2001, 2002, 2003, also by Heiko Ludwig, Alexander Keller, Asit Dan, Richard King and Richard Frank; and Dinesh C. Verma, “Policy-Based Networking: Architecture and Algorithms,” New Riders Publishing, 2001.
Lymberopoulos, et al. describe the adaptation of network routers for changing requirements based on policies. Policies are used to change run-time configuration attributes of a queue manager in network routers and to enable or disable pre-defined queue manager configurations based on some criteria. However, the ability of this prior art technique to change a system (i.e., a system of network routers) is static, and it can accommodate only those conditions which have been anticipated and written into the policies. Furthermore, the changes are made to the system configuration and not to the policies themselves.
Ludwig et al. describe a Service Level Agreement (SLA) language for agreements between a service provider and a customer that allows defining a set of obligations between the parties involved. The agreement also specifies measures to be taken in case of deviation and failure to meet asserted services guarantees, but does not prescribe an implementation policy for a service and its supervision or correction. The SLA language also does not provide a means to change the behavior of a service providing system in response to changing external conditions.
In commonly assigned U.S. patent application Ser. No. 10/719,575, filed Nov. 21, 2003, entitled “Method and Apparatus for the Dynamic Introduction of New Attributes into Policies” David M. Chess, Murthy V. Devarakonda, Alla Segal and Ian N. Whalley describe a system and method that implements a user interface and a policy manager that is coupled to the user interface via a policy repository for introducing a new attribute into a policy for a policy-managed system. This occurs without requiring a change to (e.g., without having to re-write or re-compile) the policy manager.
What is needed is the ability to dynamically adjust active policy statements so that the behavior of an on-line, deployed policy-based system can be modified based on changing conditions.